MySQL GROUP BY அறிக்கை
GROUP BY அறிக்கை ஒரே மதிப்புகளைக் கொண்ட வரிசைகளை சுருக்க வரிசைகளாக தொகுக்கிறது, "ஒவ்வொரு நாட்டிலும் உள்ள வாடிக்கையாளர்களின் எண்ணிக்கையைக் கண்டறியவும்" போன்றவை.
GROUP BY அறிக்கை பொதுவாக ஒருங்கிணைந்த செயல்பாடுகளுடன் (COUNT(), MAX(), MIN(), SUM(), AVG()) பயன்படுத்தப்படுகிறது, இது முடிவுத் தொகுப்பை ஒன்று அல்லது அதற்கு மேற்பட்ட நெடுவரிசைகளால் தொகுக்கிறது.
GROUP BY தொடரியல்
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
டெமோ தரவுத்தளம்
Northwind மாதிரி தரவுத்தளத்தில் "Customers" அட்டவணையிலிருந்து ஒரு தேர்வு கீழே உள்ளது:
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
MySQL GROUP BY எடுத்துக்காட்டுகள்
பின்வரும் SQL கூற்று ஒவ்வொரு நாட்டிலும் உள்ள வாடிக்கையாளர்களின் எண்ணிக்கையை பட்டியலிடுகிறது:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
பின்வரும் SQL கூற்று ஒவ்வொரு நாட்டிலும் உள்ள வாடிக்கையாளர்களின் எண்ணிக்கையை பட்டியலிடுகிறது, உயர் முதல் குறைந்த வரிசையில் வரிசைப்படுத்தப்பட்டுள்ளது:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
டெமோ தரவுத்தளம்
Northwind மாதிரி தரவுத்தளத்தில் "Orders" அட்டவணையிலிருந்து ஒரு தேர்வு கீழே உள்ளது:
| OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
|---|---|---|---|---|
| 10248 | 90 | 5 | 1996-07-04 | 3 |
| 10249 | 81 | 6 | 1996-07-05 | 1 |
| 10250 | 34 | 4 | 1996-07-08 | 2 |
மற்றும் "Shippers" அட்டவணையிலிருந்து ஒரு தேர்வு:
| ShipperID | ShipperName |
|---|---|
| 1 | Speedy Express |
| 2 | United Package |
| 3 | Federal Shipping |
GROUP BY With JOIN எடுத்துக்காட்டு
பின்வரும் SQL கூற்று ஒவ்வொரு ஷிப்பரும் அனுப்பிய ஆர்டர்களின் எண்ணிக்கையை பட்டியலிடுகிறது:
SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;